[v14.x] build: support Python 3.11#45231
[v14.x] build: support Python 3.11#45231richardlau wants to merge 2 commits intonodejs:v14.x-stagingfrom
Conversation
PR-URL: nodejs#45191 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Moshe Atlow <moshe@atlow.co.il> Reviewed-By: Richard Lau <rlau@redhat.com> Reviewed-By: Christian Clauss <cclauss@me.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
PR-URL: nodejs#45191 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Moshe Atlow <moshe@atlow.co.il> Reviewed-By: Richard Lau <rlau@redhat.com> Reviewed-By: Christian Clauss <cclauss@me.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
|
Review requested:
|
| * Python (see note above) | ||
| * Python 2.7 | ||
| * Python 3.5, 3.6, 3.7, 3.8, 3.9 or 3.10 (see note above) | ||
| * Python >=3.5 <=3.11 (see note above) |
There was a problem hiding this comment.
We use f-strings and will not run on Python 3.5.
There was a problem hiding this comment.
In Node.js 14? I don't think we've backported anything using f-strings there. Node.js 14 is in maintenance and going End-of-Life in April 2023 -- this PR is needed to build Node.js 14 on systems that have update to Python 3.11.
| @@ -240,7 +240,7 @@ test with Python 3. | |||
| * GNU Make 3.81 or newer | |||
| * Python (see note above) | |||
| * Python 2.7 | |||
There was a problem hiding this comment.
This is Node.js 14, which goes End-of-Life in April 2023. We dropped legacy Python for Node.js 16 but 14 was the last release where we supported building with both legacy Python and Python 3 -- this PR merely allows the scripts to use Python 3.11.
|
It looks like the old version of node-gyp in the old version of npm doesn't work with Python 3.11 👀 😞 |
|
Given that Node.js 14 is in maintenance and it appears that Python 3.11 introduces incompatibilities with the older versions of node-gyp in npm in Node.js 14 it seems the least risky thing is to not add support for building with Python 3.11 for Node.js 14. We'll need to figure out a way of pinning Python in our Windows CI hosts to Python 3.10 (at least for Node.js 14) to unbreak the CI for Node.js 14. cc @nodejs/platform-windows @nodejs/build-infra |
|
FWIW on my Windows machine I installed Python from the Microsoft Store, where you can pin to a minor version number (the app is available multiple times, for example Python 3.10). |
Backport of #45191 to v14.x.